perm filename RMOT.F4[SCR,LCS]1 blob
sn#369202 filedate 1978-07-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002
C00005 ENDMK
C⊗;
C≡≡≡≡≡≡ THIS IS THE REQUIRED HEADER FOR 'SCORE' SUBROUTINES. ≡≡≡≡≡≡≡
SUBROUTINE SUBR
COMMON /P/P(1) /PL/PL(1) /INS/ INST(27),BG(60)
COMMON INUM,IPAR,CNT(27),BT,IREST,DF,DUR(27)
C INUM=INST# IPAR=PARAM#
C BT=BASIC TIME P1 WHEN SUBROUTINE IS CALLED
C IF IREST IS <0, THAT NOTE WILL BE A REST.
C INST=INST. NAME, BG=INSTS' BEGIN TIMES.
C NOTE #S IN SUBROUTINE: (1-84) C4=37 FS4=43 C5=49 ETC.
C F1=86 F15=100 (NO F16!)
DIMENSION W(100),X(100),Y(100),Z(100),T(6),
1 A(100),B(100),C(100),D(100)
DATA T/4.,-7.,12.,-18.,0,-10./
IF(CNT(1).NE.1)GO TO 1
DO 100 K=1,100
C ZERO ALL ARRAYS
W(K)=0
X(K)=0
Y(K)=0
Z(K)=0
A(K)=0
B(K)=0
C(K)=0
100 D(K)=0
K8=0
K7=0
K6=0
K5=0
K4=0
K3=0
K2=0
K1=0
J=0
K=0
C K IS COUNTER FOR MOTIVES. J IS MEMORY OF MOTIVE NUMBER (LATER).
C 1ST STEP OF INITIALIZATION NOW COMPLETE.
1 IF(INUM.NE.1)GO TO 2
C RHYTHMS ARE STORED IN ARRAYS A,B,C,D; NOTES IN W,X,Y,Z.
K8=K8+1
K7=K7+1
K6=K6+1
K5=K5+1
K4=K4+1
K3=K3+1
K2=K2+1
K1=K1+1
Z(K8)=P(IPAR)
Y(K7)=P(IPAR-1)
X(K6)=P(IPAR-2)
W(K5)=P(IPAR-3)
D(K4)=P(IPAR-4)
C(K3)=P(IPAR-5)
B(K2)=P(IPAR-6)
A(K1)=P(IPAR-7)
RETURN
C NOW ALL INITIALIZATION DONE.
2 IF(IPAR.EQ.3)GO TO 30
IF(K.NE.0)GO TO 3
20 I=P(2)
C PICK A MOTIVE (A NUMBER FROM 1 THROUGH 4)
IF(I.NE.J)GO TO 4
I=I+1
IF(I.GT.4)I=1
C ABOVE GAURDS AGAINST REPEATING PREVIOUS MOTIVE.
4 K=1+100*(I-1)
KK=K
J=I
C REMEMBER WHAT LAST 'I' WAS - SAVE IT IN 'J'.
3 Q=A(K)
IF(Q.LT.0.AND.A(K-1).LT.0)GO TO 20
C 2 RESTS IN A ROW MEAN END OF MOTIVE.
P(2)=Q
C THIS IS FOR TEMPO CHANGES. ORIGINAL P2=1"*TEMPO FACTOR.
RETURN
30 L=P(3)
IF(K.EQ.KK)TR=T(L)
P(3)=W(K)+TR
PL(3)=2
C ABOVE SO IT WILL PRINT NAMES OF NOTES.
K=K+1
RETURN
END